Today, many computing architectures provide a central processing unit (CPU) for processing data, including video and graphics data. While a CPU may provide adequate processing capabilities for some video and graphics, a CPU may also be configured to process other data. Many graphics systems within such computing architectures are implemented through the use of a set of interfaces, such as MICROSOFT's Direct3D interface, OpenGL, etc., that offer control of multimedia hardware (e.g., a graphics accelerator or graphics processing unit (GPU)) on a computer running a particular operating system.
The generation of pictures or images is commonly referred to as rendering, and such operations are primarily implemented through a graphics accelerator. Generally, in three-dimensional (3D) computer graphics, geometry that represents surfaces (or volumes) of objects in a scene is translated into pixels (picture elements), stored in a frame buffer, and then displayed on a display device. Each object or group of objects may have specific visual properties related to the appearance of surfaces (materials, reflectance, shape, textures, etc.) which may be defined as a rendering context for the object or group of objects.
Various standards have been developed to improve the visual quality of generated images while requiring lower data rates. One of these standards, the H.264 specification (also known as the ISO Motion Picture Experts Group (MPEG)-4 part 10), is a high compression digital video codec standard. An H.264 compliant codec can encode video with approximately three times fewer bits than comparable MPEG-2 encoders while retaining similar video quality. Video processing of H.264 data is widely used for modern 3D graphics accelerators.
Special hardware units or general purpose central processing units (CPUs) are typically required for such processing. One perceived shortcoming with conventional architectures, however, is that such dedicated hardware for H.264 video processing will experience idle periods while a graphics processing unit (GPU) processes tasks relating to 3D graphics. Thus, a heretofore unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies.